// 1. js中所有东西都是对象
// 2. 所有的对象都有__proto__ 原型对象

var func = function () {

}

// 看到函数的构造方法
// 函数也是对象

console.log(func.__proto__.constructor === Function);


// 函数本身是Function对象,  Function的原型链: Function.prototype ...

// 函数可以认为是：
//1.函数
//   1.1 普通函数
//   1.2 构造函数
//2. 正常的对象
// 函数是通过Function 构建出来的对象

var func = function () {
    console.log("hello");
};

func();

var func = new Function("console.log('nihao');"); // 相当于构建了一个函数

func();

// 所有函数都属于Function的对象
console.log((function () {
}).__proto__ === Function.prototype);

// Function() <==> new Function()
var m = (function () {
}).constructor("console.log('love you');");
var n = Function("console.log('你好');");
m();
n();

setInterval(function () {
    // debugger => 打开devtools的调试功能，暂停在这一行代码处
    // 无线debugger；
    // 这样写好处是可以对代码进行重度混淆
    (function () {
    })['constructor']("debugger")();
    var sth = 'constr' + 'uctor';
    var db = "debugger";
    (function () {
    })[sth][db]();
    // debugger;
}, 1000);
























